| Автор перевода: Майкл "Antares" Клишин | Предыдущая | Следующая | Оглавление |
Flash Player 6.
receiving_lc.connect(connectionName:String): Boolean
connectionName Строка, соответствующая имени соединения, передаваемого методу LocalConnection.send() объекта-отправителя в качестве параметра для соединения с объектом receiving_lc.
Булева величина: true если ни один из роликов, запущенных на данном компьютере не создал соединения с данным именем; false в противном случае.
Метод; готовит объект LocalConnection к получению команд, посланных при помощи вызова метода LocalConnection.send() объектом-отправителем LocalConnection). Объект, у которого вызывается данный метод, называется объектом-получательом LocalConnection. Объект-получатель и объект-отправитель должны быть запущены на одном компьютере.
Убедитесь, что Вы определили вызываемый метод у объекта receiving_lc до вызова данного метода.
По умолчанию, Flash Player преобразует connectionName в значение вида "superdomain:connectionName", где superdomain есть над-домен SWF файла, содержащего объект, у которого был вызван метод LocalConnection.connect(). Например, если SWF файл, содержащий объект-получатель, расположен в домене www.someDomain.com, connectionName преобразуется в "someDomain.com:connectionName". (Если SWF файл расположен на локальном сервере, superdomain равен "localhost".)
Также по умолчанию Flash Player позволяет объекту-получателю только от объекта-отправителя, чье имя соединения преобразуется в то же самое значение в виде "superdomain:connectionName". В этом случае, Flash позволяет SWF файлам взаимодействовать только если они находятся в одном домене.
Если Вы реализуете взаимодействие между SWF файлами в одном домене, указывайте имя в параметре connectionName так, чтобы оно не начиналось с символа подчеркивания (_) и так, чтобы оно не совпадало с именем домена (например, "myDomain:connectionName"). Тот же параметр передайте LocalConnection.connect(connectionName) объекта-получателя.
Если Вы реализуете взаимодействие SWF файлов в разных доменах, указание connectionName , начинающееся с символа подчеркивания (_), облегчит портацию SWF файла. Возможны два случая:
connectionName не начинается с символа подчеркивания (_), Flash Player добавляет префикс из имени над-домена и двоеточия (например, "myDomain:connectionName"). Хотя это позволяет гарантированно избежать конфликта имен с соединениями из других доменов, указание над-домена должно присутствовать для каждого объекта-отправителя класса LocalConnection (например, "myDomain:connectionName"). Если SWF, в котором расположен объект-получатель, перемещается в другой домен, плеер изменит префикс (например, "anotherDomain:connectionName"). Все объекты-отправители должны будут изменены, чтобы идентификатор соединения соответствовал.connectionName , определяющая имя соединения, начинается с символа подчеркивания (например, "_connectionName"), Flash Player не добавляет префикса к имени. Это означает, что даже при перемещении в другой домен одного из объектов, соединение будет работать, если отправитель и получатель имеют одно и то же имя соединения connectionName. Если получатель при помощи LocalConnection.allowDomain укажет разрешение доступа из всех доменов, изменять код не придется.Для более подробной информации смотри LocalConnection.send(), LocalConnection.allowDomain и LocalConnection.domain().
Замечание: двоеточие используется в качестве разделителя имени соединения и над-домена в connectionName, поэтому использовать двоеточие в connectionName нельзя.
В следующем примере показано, как объект LocalConnection в SWF файле в определенном домене вызывает метод Trace у объекта-получателя в SWF файле в том же домене. Получатель исполняет роль функции trace() для отправителя; он имеет два метода, которые могут быть вызваны — Trace и Clear. Нажатие кнопок в файле с объектом-отправителем вызывает эти методы.
// Код в SWF файле-получателе сообщения
var aLocalConnection:LocalConnection = new LocalConnection();
aLocalConnection.Trace = function(aString):String{
aTextField += aString + newline;
}
aLocalConnection.Clear = function(){
aTextField = "";
}
aLocalConnection.connect("trace");
stop();
SWF 1 contains the following code, which создается новый объект Sound, воспроизводящий MP3 файл. Компонент ProgressBar playback_pb отображает процесс проигрыша MP3 файла. Компонент Label song_lbl отображает имя MP3 файла. Кнопки в различных роликах используются для контроля воспроизведения при помощи LocalConnection.
var playback_pb:mx.controls.ProgressBar;
var my_sound:Sound;
playback_pb.setStyle("themeColor", "haloBlue");
this.createEmptyMovieClip("timer_mc", this.getNextHighestDepth());
var receiving_lc:LocalConnection = new LocalConnection();
receiving_lc.playMP3 = function(mp3Path:String, mp3Name:String) {
song_lbl.text = mp3Name;
playback_pb.indeterminate = true;
my_sound = new Sound();
my_sound.onLoad = function(success:Boolean) {
playback_pb.indeterminate = false;
};
my_sound.onSoundComplete = function() {
delete timer_mc.onEnterFrame;
};
timer_mc.onEnterFrame = function() {
playback_pb.setProgress(my_sound.position, my_sound.duration);
};
my_sound.loadSound(mp3Path, true);
};
receiving_lc.connect("lc_name");
SWF 2 содержит кнопку play_btn. Когда Вы нажимаете на нее, происходит соединение с SWF 1 и первому ролику передаются две переменные. Первая содержит имя MP3 файла, а вторая — строку, отображаему компонентом Label
play_btn.onRelease = function() {
var sending_lc:LocalConnection = new LocalConnection();
sending_lc.send("lc_name", "playMP3", "song1.mp3", "Album - 01 - Song");
};
SWF 3 также содержит кнопку play_btn. Когда Вы нажимаете на нее, происходит соединение с SWF 1 и первому ролику передаются две переменные. Первая содержит имя MP3 файла, а вторая — строку, отображаему компонентом Label
play_btn.onRelease = function() {
var sending_lc:LocalConnection = new LocalConnection();
sending_lc.send("lc_name", "playMP3", "song2.mp3", "Album - 02 - Another Song");
};
LocalConnection.send()
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |